Persistent and effecient game architecture

ABSTRACT

A network-based game system includes a computer network, and a first server and a second server connected to the computer network. The first server is configured to store a game engine application that can communicate with a game client application running on a computer device connected to the computer network in a persistent network connection. The second server is configured to store a game-system-interface (GSI) program that can respond to requests from the game client application running on the computer device in a non-persistent network connection.

TECHNICAL FIELD

This application relates to a game system, more specifically, anetwork-based game system.

BACKGROUND

Interactive online digital entertainment has advanced on many fronts inrecent years, especially with respect to video gaming. For example,users can login to websites to find an opponent and then a game of chessor a card game in the virtual world. As a player may be competingagainst another player, the communication is bi-directional. However,not all video games can be played online. For a game of chess where timeto make a move does not have an immediate and consequential effect onthe outcome, players have time to contemplate the next move, countermove, game strategy and so on and the game does not need to providereal-time feedback. However, in a majority of real-time video games,time needed to make a decision and act upon that decision is relativelyshort so that players involved feel a sense of realism and engagement.In such a real-time game, action must occur in close proximity to reallife events. Real-time action is required for the action games,simulation games such as flight simulators and sport games. In mostcases persistent communications, scoring, player attributes, etc. cannotbe offered together with real-time realism and engagement.

A further challenge to the network-based game application isscalability. While some existing network-based systems can handle tensof thousands of game players, it is a serious challenge to provide gameapplications in real time to millions of players reliably andsimultaneously.

SUMMARY

Implementations of the system may include one or more of the following.In one aspect, the present invention relates to a network-based gamesystem, comprising:

-   -   a computer network;    -   a first server connected to the computer network, configured to        store a game engine application that can communicate with a game        client application running on a computer device connected to the        computer network in a persistent network connection; and    -   a second server connected to the computer network, configured to        store a game-system-interface (GSI) program that can respond to        requests from the game client application running on the        computer device.    -   In another aspect, the present invention relates to a game        architecture, comprising:    -   a computer network to be connected to a computer device capable        of executing a game client application;    -   a first server connected to the computer network, configured to        store a game engine application that can    -   a) respond to the game client application instantaneously after        receiving a request from the game client application and    -   b) send a request to the game client application and        instantaneously receive a response from the game client        application; and    -   a second server connected to the computer network, configured to        store a game-system-interface (GSI) program that can respond to        the requests from the game engine application and can receive        game information from the game engine application in a        non-persistent network connection.

In yet another aspect, the present invention relates to a method ofproviding a game over a computer network, comprising:

-   -   storing a game engine application on a first server connected to        the computer network;    -   communicating between the game engine application and a game        client application running on a computer device connected to the        computer network in a persistent network connection;    -   storing a game-system-interface (GSI) program on a second server        connected to the computer network; and    -   responding to requests from the game client application by the        GSI program.

Implementations of the system may include one or more of the following.The game-system-interface (GSI) program can be configured to communicatewith the game client application running on the computer device in anon-persistent network connection. The game engine application can beconfigured to be connected with the game client application are in anopen socket connection to allow messages to be instantaneouslycommunicated between the game engine application and the game clientapplication. The game client application can be executed by a plug-in toa web browser installed on the computer device. The game clientapplication can use the web browser's API to communicate with the gameengine application and the GSI program. The game client application canbe configured to display vector-graphic animations independent of theweb browser used and can scale vector-graphic animations relative to thesize of the web browser window. The game engine application and the gameclient application can be configured to send requests to each other andinstantaneously respond to the requests. The game engine application canbe configured to send animation information to the game clientapplication. The GSI program can be configured to receive game statusinformation from the game client application running on the computerdevice. The game status information can include one or more of useridentification, session identification, game room information, gamestatistics, and game configurations associated with a game clientapplication running on the computer device. The network-based gamesystem can further comprise a data storage system connected to thecomputer network, configured to store the game status informationreceived from the GSI program. The GSI program can be configured to senda verification message to the game engine application or the game clientapplication in response to authentication information received from thegame engine application or the game client application. The game engineprogram can be configured to send identification information to the GSIprogram in response to the authentication information received from thegame client application. The identification information includes one ormore of user identification, game session identification, and game roomidentification. The game engine application and the GSI program can beconfigured to communicate with the game client application in serializedmessages encrypted under one or more serialization protocols. Thenetwork-based game system can further comprise a computer deviceconnected to the computer network, configured to store a library ofencryption rules and decryption rules to be used to encrypt and decryptthe serialized messages between the game engine application and the gameclient application and between the GSI program and the game clientapplication. The library of encryption rules and decryption rules caninclude a plurality of message serialization communication protocols.

Embodiments may include one or more of the following advantages. Anadvantage of the present invention is that the disclosed system canprovide game applications to remote game players with persistent networkconnections while efficiently tracking and updating the game status ofeach of the players in an efficient manner. The disclosed systemincludes a persistent communication path that provides instantaneousmessage exchanges for the game applications in real time. The disclosedsystem includes a separate communication path that can respond to therequests game applications without consuming significant networkresources and store game status information in storage devices.

Another advantage of the present invention is that the disclosed systemis network based and can provide game applications simultaneously tomany remote game players. The players can play the games at locationsconvenient to them. Many game players can play the same gameapplications while competing against each other or play separate gameapplications. The persistent communication paths allow game applicationsto be played without network latency at multiple remote locations.

Yet another advantage of the invention is that the disclosed game systemis efficient. The disclosed game system includes a communication path tothe game client that does not need to be persistent through a gamesession. A call from the game client is answered and the communicationsession is closed and network connection freed up.

Because of its efficient communication architecture, the disclosedsystem can be scaled up easily without consuming significant networkbandwidth as in the prior art systems. It can host millions of gameplayers in millions of game sessions over a computer network, which isone or more orders of magnitudes higher than conventional network-basedgame systems.

Still another advantage of the invention is that the disclosed systemcan provide many game applications to remote game players over acomputer network using different serialization encryption protocols suchas PHP, XML, AMF, XML-RPC, etc. The game players can access gameapplications based on any of the protocols from a single network-basedservice. The selection of the game applications is significantlyincreased.

Another advantage of the present invention is that it allows scalabilityto the hosting of a large number of game players in the same game roomor in different game rooms. The communications to the game clientapplication are divided into a persistent communication and an efficientbut non-persistent communication path. The amount of informationcommunicated in real time is minimized. A flexible layer bygame-system-interface (GSI) program handles the non-persistentcommunications, which allows the network-based game system to handle alarge number and variety of game client applications.

The details of one or more embodiments are set forth in the accompanyingdrawing and in the description below. Other features, objects, andadvantages of the invention will become apparent from the descriptionand drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram of the network-based game system inaccordance with the present invention.

FIG. 2 shows a game client application that can be running on a computerdevice shown in FIG. 1.

FIG. 3 shows a game engine application that can be stored on a gameserver shown in FIG. 1.

FIG. 4A shows a Game System Interface application that is stored on aserver in the network-based game system shown in FIG. 1 in accordance toan embodiment of the present invention.

FIG. 4B shows a Game System Interface application that is stored on aweb server of FIG. 1 in accordance to another embodiment of the presentinvention.

FIG. 5 shows a system diagram of a persistent and efficient gamearchitecture in the network-based game system of FIG. 1.

DETAILED DESCRIPTION

Reference will now be made in detail to the preferred embodiments of theinvention, examples of which are illustrated in the accompanyingdrawings. While the invention will be described in conjunction with thepreferred embodiments, it will be understood that they are not intendedto limit the invention to these embodiments. On the contrary, theinvention is intended to cover alternatives, modifications andequivalents, which may be included within the spirit and scope of theinvention as defined by the appended claims. Furthermore, in thefollowing detailed description of the present invention, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. However, it will be obvious toone of ordinary skill in the art that the present invention may bepracticed without these specific details. In other instances, well knownmethods, procedures, components, and circuits have not been described indetail as not to unnecessarily obscure aspects of the present invention.

Shown in FIG. 1, a network-based game system 100 can provide gameapplications over a communication network 105 to be played on manycomputer devices 106 and 107. The communication network 105 can includevarious wired, wireless, satellite communication arrangements includingbut not limited to a wide area network such as the Internet, a localarea network, a cellular phone network under various communicationprotocols such as 2G, 2.5G and 3G, Global System for MobileCommunications (GSM), General Packet Radio Service (GPRS), EDGE, CodeDivision Multiple Access (CDMA), Wideband CDMA, TD-SCDMA, UniversalMobile Telecommunications System (UMTS), etc., and Wi-Fi wirelesscommunication standards such as IEEE 802.11, Wi-Max, and IEEE 806.16,and others. The computer devices 106 and 107 can include personalcomputers, portable digital assistance (PDA) devices, cell phones,digital image capture devices, and dedicated game devices such asMicrosoft XBOX, the SONY PlayStation OR PS2, and/or the Nintendo 64,GameCube, or GameBoy.

The network-based game system 100 can include a load balancer 115, oneor more web servers 121-124, one or more session servers 130, a server140, one or more game servers 141-143, a database 150, and a storagearea network 151. The network-based game system 100 can be operated by agame service provider such as Gaia Interactive Inc., based inCalifornia, USA. The network-based game system 100 can provide a websitesuch as www.gaiaonline.com on the Internet to host a game community andprovide various game services such as games, discussion groups, andmails etc. A player can sign up at the website to own his or her ownaccount. The player can also personalize his or her own profiles. Asdescribed below, the network-based system 100 can store game statisticsand other game properties associated with a player in a networkedstorage device, available and updatable to the game player.

A game player can access the web site of the game service provider usingcomputer devices 106 and 107 with a web browser application executed onthe computer devices 106 or 107. The web browser applications areavailable from several manufacturers including Internet Explorer™ fromMicrosoft, Netscape™ from AOL, and Firebox™ from Mozilla and so on.Various Internet browsing applications are available to cellular phones,PDAs, game consoles, which are also compatible with the disclosed systemand methods.

A game client application 200 can reside on the computer device 106 or107 as shown in FIG. 2. The game client application 200 can be executedby a plug-in to the web browser application. The game client application200 can include game logic for one or more games and enable animationdisplay for the games. The web-browser plug-in can enable the webbrowser to audio or video messages and properly display vector graphicsimages independent of the manufacturer or the version of the webbrowser. The web-browser plug-in can allow animations to be properlyscaled to as web browser window is resized. The game client application200 can use the web browser's communication API (Application ProgrammingInterface) to communicate with various servers and devices (115,121-124, 140-143 etc.) in the network-based game system 100.

Specifically, without limitation, the computer devices 106 and 107 canbe installed with Flash plug-in produced by Macromedia Inc. Flash is abandwidth friendly and browser independent vector-graphic animationtechnology. Animation is choreographed using one or more sequentialtimelines in which actions and interactions are defined. The Flashplug-in is attached to the web browsers running on the computer devices106 and 107 to allow the web browser play SWF (Small Web Format) movieclips referenced in a webpage. Macromedia's Flash MX and Freehandapplications and other Flash files can also be viewed through a Webbrowser plug-in (or the Flash player) or multimedia applications thataccess the player directly. Flash files can include sound. Flash can usethe FLA files for source files and SWF files for the Flash movies. Flashfiles are space-efficient and suitable for interactions, comparing toother movie files (AVI, MPG, etc.) files.

The game client application 200 can be written in one or more SWF movieclips to be loaded in the web browser. Each game client application 200can correspond to one or more games. The SWF movie clips include gamelogic as well as animations, images, and other effects. The SWF movieclips can communicate with servers in the network-based game system 100using the library of functions provided by Macromedia's Flash plug-in. Alibrary of APIs can be developed for the SWF movie clips that can bere-used in multiple games.

FIG. 3 shows a game engine application 300 stored on a game server 141,142, or 143. The game engine application 300 is responsible forproviding real-time responses to the game client application 200 duringa game session. In the present application, the term “real-timecommunication” refers to the types of communications facilitated by apersistent network connection. The persistent network connection allowsinstantaneous and reliable communications between two components overthe network without network latency.

The game server 141, 142, or 143 on which the game engine application300 is stored can keep an open socket connection with the computerdevice 106 or 107. The game engine application 300 and the game clientapplication 200 can send and receive TCP/IP messages to and fromeach.other by writing and reading data to and from the socket. Messagescan be sent and received from either the game server 141 (or 142 and143) or the computer device 106 or 107 at any time. The persistentnetwork connection allows instantaneous two-way communications andguarantees the games updated in real time without network latency at alltime during a game session. A loss of connection in the persistentcommunication can be interpreted as that the game client application 200has left the game.

The game engine application 300 is compatible with different serversoftware implementations such as Sushi Multiuser Server available at“www.wok2.de”, ElectroServer 3 available at “www.electrotank.com”, andTerazona Network Engine available at “www.zona.net”. The network-basedgame system 100 can include many the game engine applications 300developed using different server software. Different server software mayrequire serialized messages encrypted under different serializationprotocols. The communication protocols with these game engineapplications 300 are provided by the GSI program 400.

The network-based game system 100 includes a Game System Interface (GSI)program 400 that can be stored on a server 140 as shown in FIG. 4A, onthe web server 121, 122, or 123 as shown in FIG. 4B, or on other serverssuch as the game servers 141-143 connected to the computer network. Thisserver that the GSI program 400 resides on can be a single computer or aload-balanced cluster of servers. Each request to the GSI program 400 isan autonomous transaction and therefore does not require a persistentconnection between the GSI program 400 and the other party (e.g. thegame client application 200 or the game engine application 300).

The GSI program 400 provides information to clients such as the gameclient application 200 in response to requests but does initiatecommunications. The GSI program 400 can respond to the requests from thegame client applications 200 running on the computer devices 106 and107. Similarly, the GSI program 400 can also provide game information inresponse to the requests from the game engine application 300.

FIG. 5 shows a system diagram of a persistent and efficient gamearchitecture 500 in the network-based game system 100. The persistentand efficient game architecture 500 include the game client application200, the game engine application 300, and the GSI program 400, whichprovide a persistent communication path and an efficient butnon-persistent communication path for the game client application 200.The GSI program 400 is connected to the database 150 and a Storage AreaNetwork 151 for saving updated data in the current game and retrievingdata from the current and past games. The games are run on the gameclient applications 200 and communicate with the game engineapplications 300 through the protocols defined by the game clientapplication 400.

An advantageous feature of the disclosed network-based game system isthat it includes a persistent communication path and a non-persistentcommunication path for the remote game client application. Thepersistent communication path is used for exchanging short andinstantaneous messages that a game needs to be updated in real time, butdoes not need to be stored permanently on data storage. The real-timetwo-way communications between the game client application 200 and thegame engine application 300 are fast and without network latency. Thereis no cycle time spent on accessing and storing the exchange informationon a data storage device. The persistency of the network connectionbetween the game client application 200 and the game engine application300 typically last through a game session.

The non-persistent communication path is efficient, which allows theamount of information communicated in real time to be minimized. As aresult, the network-based system is scalable to a large number of gameplayers. The non-persistent communication path is used to communicateinformation that is of “long-term” use to the games or the game playersand does not require instantaneous and resource-intensivecommunications. The information may include the attributes andstatistics of the game player such as his or her game scores, theequipment he or she purchased to be used in the games, the “money” he orshe owns from the past and the current games, and so on. The informationnot only is needed for the current game, but also needs to be stored andretrieved for future games. Thus the information exchanged between thegame client application 200 and the GSI program 400 often involves theaccess or retrieving data from the database 150 and a data storagedevice such as SAN 151, and writing and saving data to the database 150and a data storage device. The interactions between the game clientapplication 200 and the GSI program 400 are usually single requests thatcan be answered. The connection is then closed. In other words, nopersistent network connection is required for these communicationsthroughout a game session.

The persistent and efficient game architecture 500 shown in FIG. 5differs from certain prior art systems that integrate the differenttypes of communications into the same application layer. The sameapplication layer handles real-time persistent communications andcommunications that do not need to be real time (which is in contrast tothe separate game engine application 300 and the GSI 400 provided in thepersistent and efficient game architecture 500). This type of prior artsystems requires persistent network connections for both types of servercommunications throughout the game sessions. Each of the serverinstances is to be managed by a much larger and more resource-intensiveapplication layer than the presently disclosed system. The burden to theapplication layer grows rapidly as the number of game clients or thenumber of games grows, which often increases the chance for failure,slows the responses, or degrades reliability. Furthermore, the presentdisclosed system is much more scalable compared to this type of priorart systems.

Each game engine application 300 can support one or many game clientapplications 200. The GSI program 400 can support many game clientapplications 200 and many game engine applications 300. The game logiccan be stored inside the game client application 200, for example, inthe form of compiled flash SWF files that are loaded on the web browserson the computer devices 106 and 107.

The game client application 200 can be loaded via web browser running onthe computer devices 106 and 107. The game client application 200 caninclude many game logics to allow a player to play many games.Alternatively, the game play logic can also be remotely stored on aserver (such as 121-124 or 140-143) in the network-based game system100. For example, the game logic can be included in the game engineapplication 300 or the GSI program 400 that can typically accommodatemore complex game logic than game client applications. The remotelystored game logic can be activated remotely in real-time with secureprocessing on the servers (such as 121-124 or 140-143) or downloaded tothe game players' computer devices 106 and 107 before a session starts.

To start a game, a game player can access a game service website such aswww.gaiaonline.com operated by Gaia Interactive Inc., based inCalifornia, USA. The game player can initiate a game session by clickinga game client application 200 on a web page presented by a web browserapplication running on a computer device 106 or 107. In the presentinvention, a game session refers to an active connection between theclient game application 200 and other programs such as game engineapplication 300 and GSI program 400 stored in the network-based gamesystem 100. The game client application 200 can also be in the form ofstream media (e.g. Flash SWF) so a game can keep loading as game-playstarts.

In one embodiment, a game can be started and a game session can beinitiated directly from the game client application 200 to the gameengine application 300 after authenticating with GSI 400, without theneed to access a webpage.

Many game client applications can be loaded on a computer device 106 or107. Each game client application 200 can include game logic for one ormore games. In one embodiment, the game client application 200 can be aFlash plug-in provided by Macromedia. The Flash plug-in can bedownloaded, installed, and attached to a web browser. The Flash plug-inallows the web browser to play SWF movie clips in the web-browser itfinds referenced in a webpage. Each SWF movie clip can include a uniquegame. The SWF movie clips contain the game logic as well as animations,images, and other effects. The SWF movie clip can communicate withservers in the network-based game system 100 using the library offumctions provided by Macromedia's Flash plug-in and libraries of APIsdeveloped for the network-based game system 100. Each game engineapplication 300 can support one or many game client applications 200 andthus many game logics.

During a game session, each game client application 200 can be supportedby a game engine application 300 with a persistent connection in thenetwork-based game system 100, that is, the game client application 200and the game engine application 300 can send requests to each other andreceive instantaneous responses at any time during a game session. Astop in the two-way communications between the game client application200 and the game engine application 300 is typically interpreted by thegame engine application 300 as the leaving of the game session by thegame client application 200.

The network-based game system 100 can include many game engineapplications 300 stored on the game servers 141-143. Each of the gameengine applications 300 can be based on different game platforms thatmay be developed by the game service provider such as Gaia Interactive,Inc., or sourced from a third party game developer. The game player canthus access a wide range of network-based games at many game engineapplications 300 that run on game platforms. Different game clientapplications 200 can be installed on the computer devices to runspecific games supported by the corresponding game engine applications300.

During a game session, the game client application 200 can pullinformation related to the specific game or game session from the gameengine application 300. The game engine application 300 can respond tothe requests instantaneously. The game engine application 300 can alsoupdate the game client application 200 with animations and short-termgame information that do not need to be permanently stored. Theshort-term information, for example, can include the position of asoccer-ball on a field as it is being kicked around, the path a player'savatar is moving along on the field or the current pose an avatar is in,and the instant message chat communication between players in a gameroom, including text-based chats and emoticons.

In another embodiment, the network-based game system 100 can host manygame players playing the same game client applications in a common gamesession. The game players can, for example, compete with each other in aball game or fishing game in the game session. The game players playingcan also be depicted as playing in the same game room. In themulti-player game sessions, the game engine application 300 canbroadcast updates to many game client applications 200 running on manycomputer devices 106, 107 that are in the same game room.

The game engine application 300 can establish the players in the samegame room as peers. The game engine application 300 can conductpeer-to-peer communications in real time by broadcasting a player'sactions or events over that player's game client application to otherpeers' game client applications in the same game room. Each game clientapplication 200 in the game room can construct a message and request thegame engine application 300 to forward to the message another peer orall the peers in the same game room.

The GSI program 400 can respond to the requests from the game clientapplication 200 running on the computer devices 106 and 107. The GSIprogram 400 typically answers questions but does not initiate requestsby the game client applications 200. When a player enters the gamewebsite or when the player starts a game session, the game clientapplication 200 requests an authorization from the GSI program 400. TheGSI program 400 creates a new session ID for the user at login. The GSIprogram 400 verifies the user ID and session ID and returns validationmessage to authenticate the game session. The responses by the GSIprogram 400 in general do not need to be persistent. For example, theydo not have to communicate through SOCKET connections. This flexibilityallows a GSL program 400 to answer more calls and enables thenetwork-based game system 100 to scale up and handle more game clientapplications and game players simultaneously.

The game client application 200 asks the GSI program 400 which game roomto join for a given game. The GSI program 400 checks informationreceived from the game engine applications 300 to see whether or not agame room has been created yet for that game. If the game room exists,the game client application 200 enters it. If the game room does notexist, the game client application 200 requests the game engineapplications 300 to create one. The game engine application 300 createsthe game room and passes the information to the GSI program 400 forverification. The GSI program 400 validates and returns a verificationmessage including a new game room ID to the game engine application 300that in turn returns the verification information to the game clientapplication 200. The game client application enters the new game room.In this sequence of the communications, the GSI program 400 does notinitiate the request. It only validates the information in requests itreceives.

After the game engine applications 300 creates the game room, it writesinformation about the game room back into the GSI program 400 and waitsfor the GSI program 400 to validates that the game room is OK. Afterreceiving the validation from the GSI program 400, the game engineapplication 300 allows the game client application to enter the new gameroom.

The game client application 200 then requests the load of the game. Forexample, a SWF file is loaded by the plug-in at the request of the webbrowser. The SWF is executed by a Flash Plugin. Instructions inside theSWF tell it to connect to the GSI program 400. Instructions inside theSWF also instruct it to display the game environment and run the gameinteractions.

The GSI program 400 returns the variables necessary for loading the gameand information for saving game results to the game client application200. During the game session, the game client application 200 canrequest the saving of the game results. The GSI program 400 validatesthe data to be saved and returns whether or not the saving is succeeded.The GSI program 400 also gathers information about all the players inthe same game room and broadcast the information to the game room. Ingeneral, the GSI program 400 can respond to hundreds of different typesof calls by the game client applications 200. The GSI program 400 cantypically communicate with game client application 200 in the range of0.001-0.1 milliseconds depending on network latency and the processingtime. The priority for the performance of the GSI program 400 is that itcan respond to all the requests, but not necessarily in real time.

The GSI program 400 controls the load balance and the distribution ofplayers in the game rooms across multiple game servers 141-143 on whichthe game engine applications 300 reside. The GSI program 400 verifiesthat game rooms for a given game are not duplicated by accident. Duringthe game sessions, the game client applications 200 updates the GSIprogram 400 with game statistics and game status information such asgame scores, game equipment, game location. Tokens and validation keyscan also be passed from the game engine application 300 to the gameclient applications 200 to make sure different actions are occurring inthe correct order and are not being spoofed by the client gameapplication 200. The game client application 200 may be required toreturn the tokens and keys combined with other variables to ensure thatthe game's integrity has not been compromised.

The GSI program 400 sends the game status information to database 150and storage area network to store the game status information into theuser account such that the user can keep his or her record even afterthe specific game session is ended.

An advantage of the present invention is that it allows scalability upto a large number of game players in the same game room or in differentgame rooms. The communications to the game client-applications aredivided into persistent real-time communications and efficient butnon-persistent communications. The amount of information communicated inreal time is minimized. A flexible layer by game-system-interface (GSI)program handles the non-persistent communications, which allows thenetwork-based game system to handle an ever-increasing number andvariety of game client applications.

The GSI program 400 can also respond to requests from the game engineapplication 300 as shown in FIG. 5. The GSI program 400 providesinformation to the game engine application 300 as requested but the GSIprogram 400 does not initiate messages to the game engine application300. The game engine application 300 informs the GSI program 400 of allplayers and game rooms created. The game engine application 300 alsosends user ID, session ID, game room ID to the GSI program 400 forvalidation. The GSI program 400 responds to the game engine application300 to validate of the game rooms, the game sessions and the user ID.

The game engine application 300 can communicate with the GSI application400 over its own local host loop-back IP address (since the GSI program400 can be installed and run on the same computer as the game engineapplication 300), eliminating network latency between the game engineapplication 300 and the GSI program 400.

The game client applications 200, the game engine application 300, andthe GSI program 400 can securely communicate among each other inencrypted serialized messages. Each game engine application 300 canchoose to communicate in specific serialization communication protocolsuch as PHP (Hypertext Preprocessor), XML, AMF, XML-RPC (RemoteProcedure Call), etc. A library of serialization communication protocolsis stored on a computer device connected to the network-based gamesystem 100 available to the game engine application 300 and the GSIprogram 400. The library provides rules for encryption and decryption ofthe serialized messages under different protocols. The communicationprotocols can be independent of the game logic, the game rooms, and thegame engine applications. In fact, the disclosed system allows differentgame client applications 200 using many different communicationprotocols to enter the same game room at the same time.

Although specific embodiments of the present invention have beenillustrated in the accompanying drawings and described in the foregoingdetailed description, it will be understood that the invention is notlimited to the particular embodiments described herein, but is capableof numerous rearrangements, modifications, and substitutions withoutdeparting from the scope of the invention. The following claims areintended to encompass many such modifications.

1. A network-based game system, comprising: a computer network; a firstserver connected to the computer network, configured to store a gameengine application that can communicate with a game client applicationrunning on a computer device connected to the computer network in apersistent network connection; and a second server connected to thecomputer network, configured to store a game-system-interface (GSI)program that can respond to requests from the game client applicationrunning on the computer device.
 2. The network-based game system ofclaim 1, wherein the game-system-interface (GSI) program is configuredto communicate with the game client application running on the computerdevice in a non-persistent network connection.
 3. The network-based gamesystem of claim 1, wherein the game engine application is configured tobe connected with the game client application in an open socketconnection to allow messages to be instantaneously communicated betweenthe game engine application and the game client application.
 4. Thenetwork-based game system of claim 1, wherein the game clientapplication is executed by a plug-in to a web browser installed on thecomputer device.
 5. The network-based game system of claim 4, whereinthe game client application uses the web browser's API to communicatewith the game engine application and the GSI program.
 6. Thenetwork-based game system of claim 1, wherein the game clientapplication is configured to display vector-graphic animationsindependent of the web browser and can scale vector-graphic animationsrelative to the size of the web browser window.
 7. The network-basedgame system of claim 1, wherein the game engine application and the gameclient application are configured to send requests to each other andinstantaneously respond to the requests.
 8. The network-based gamesystem of claim 1, wherein the game engine application is configured tosend animation information to the game client application.
 9. Thenetwork-based game system of claim 1, wherein the GSI program isconfigured to receive game status information from the game clientapplication running on the computer device.
 10. The network-based gamesystem of claim 9, wherein the game status information includes one ormore of user identification, session identification, game roominformation, game statistics, and game configurations associated with agame client application running on the computer device.
 11. Thenetwork-based game system of claim 10, further comprising a data storagesystem connected to the computer network, configured to store the gamestatus information received from the GSI program.
 12. The network-basedgame system of claim 1, wherein the GSI program is configured to send averification message to the game engine application or the game clientapplication in response to authentication information received from thegame engine application or the game client application.
 13. Thenetwork-based game system of claim 1, wherein the game engine program isconfigured to send identification information to the GSI program inresponse to the authentication information received from the game clientapplication.
 14. The network-based game system of claim 13, wherein theidentification information includes one or more of user identification,game session identification, and game room identification.
 15. Thenetwork-based game system of claim 1, wherein the game engineapplication and the GSI program are configured to communicate with thegame client application in serialized messages encrypted under one ormore serialization protocols.
 16. The network-based game system of claim15, further comprising a computer device connected to the computernetwork, configured to store a library of encryption rules anddecryption rules to be used to encrypt and decrypt the serializedmessages between the game client application and the game engineapplication or the GSI program.
 17. The network-based game system ofclaim 16, wherein the library of encryption rules and decryption rulesinclude a plurality of message serialization communication protocols.18. A game architecture, comprising: a computer network to be connectedto a computer device capable of executing a game client application; afirst server connected to the computer network, configured to store agame engine application that can a) respond to the game clientapplication instantaneously after receiving a request from the gameclient application and b) send a request to the game client applicationand instantaneously receive a response from the game client application;and a second server connected to the computer network, configured tostore a game-system-interface (GSI) program that can respond to therequests from the game engine application and can receive gameinformation from the game engine application in a non-persistent networkconnection.
 19. A method of providing a game over a computer network,comprising: storing a game engine application on a first serverconnected to the computer network; communicating between the game engineapplication and a game client application running on a computer deviceconnected to the computer network in a persistent network connection;storing a game-system-interface (GSI) program on a second serverconnected to the computer network; and responding to requests from thegame client application by the GSI program.
 20. The method of claim 19,further comprising: communicating with the game client application bythe GSI program in a non-persistent network connection.